/*
 * INPUT_PARAMS.h
 *
 *  Created on: 4.1.2013
 *      Author: Lukas Gemela
 */

#ifndef INPUT_PARAMS_H_
#define INPUT_PARAMS_H_

#define	 PI 0
#define	 CGI 1
#define	 CI 2
#define	 KI 3
#define	 DTI 4
#define PARAM_P_DEFAULT_MIN 0
#define PARAM_P_DEFAULT_MAX 1
#define	 PARAM_GENERATIONS_NUM 100
#define	 PARAM_POPULATION_SIZE 10000
#define PARAM_DT_DEFAULT_MIN 0
#define PARAM_DT_DEFAULT_MAX 40*60 //40 minutes in seconds
#define PARAM_CG_DEFAULT_MIN -10
#define PARAM_CG_DEFAULT_MAX 0
#define PARAM_C_DEFAULT_MIN 0
#define PARAM_C_DEFAULT_MAX 10
#define PARAM_MIN_MUTATION_RATE 0.02
#define PARAM_MUTATION_STEP 0.01
#define PARAM_MAX_MUTATION_RATE 0.16
#define PARAM_CROSS_RATE 1.0
#define PARAM_THREAD_DEFAULT 1
#define PARAM_STEP_DEFAULT 50

#include <string>
typedef struct _INPUT_PARAMS {
	std::string inputFile;
	int threadCount;
	double dtMin;
	double dtMax;
	bool isKset;
	double kMin;
	double kMax;
	bool isCset;
	double c;
	bool isPset;
	double p;
	int step;
	int generation;
	int populationSize;
	double mutratemin;
	double mutratemax;
	double mutstep;
	double crossrate;
} INPUT_PARAMS;

#endif /* INPUT_PARAMS_H_ */
